package com.pb.metadata.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 元数据导入导出
 * @author liaohaoyuan
 * @date 20210301
 */
@Mapper
@Repository
public interface DataMigrationMapper {

    /**
     * 导出第一个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet1(Map<String, Object> paramMap);

    /**
     * 导出第二个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet2(Map<String, Object> paramMap);

    /**
     * 导出第三个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    // List<Map<String, Object>> selectDataListSheet3(Map<String, Object> paramMap);

    /**
     * 导出第四个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet4(Map<String, Object> paramMap);

    /**
     * 导出第五个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet5(Map<String, Object> paramMap);

    /**
     * 导出第六个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet6(Map<String, Object> paramMap);

    /**
     * 导出第七个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet7(Map<String, Object> paramMap);

    /**
     * 导出第八个sheet页信息
     *
     * @param paramMap 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet8(Map<String, Object> paramMap);

    /**
     * 导出第九个sheet页信息
     *
     * @param list 标识集合
     * @return
     */
    List<Map<String, Object>> selectDataListSheet9(List<Map<String, Object>> list);

    List<Map<String,Object>> getKeyList1();

    List<Map<String,Object>> getKeyList2();

    //List<Map<String,Object>> getKeyList3();

    List<Map<String,Object>> getKeyList4();

    List<Map<String,Object>> getKeyList5();

    List<Map<String,Object>> getKeyList6();

    List<Map<String,Object>> getKeyList7();

    List<Map<String,Object>> getKeyList8();

    void addSheetData1(List<Map<String,Object>> list);

    void updateSheetData1(List<Map<String,Object>> list);

    void addSheetData2(List<Map<String,Object>> list);

    void updateSheetData2(List<Map<String,Object>> list);

    //void addSheetData3(List<Map<String,Object>> list);

    //void updateSheetData3(List<Map<String,Object>> list);

    void addSheetData4(List<Map<String,Object>> list);

    void updateSheetData4(List<Map<String,Object>> list);

    void addSheetData5(List<Map<String,Object>> list);

    void updateSheetData5(List<Map<String,Object>> list);

    void addSheetData6(List<Map<String,Object>> list);

    void updateSheetData6(List<Map<String,Object>> list);

    void addSheetData7(List<Map<String,Object>> list);

    void updateSheetData7(List<Map<String,Object>> list);

    void addSheetData8(List<Map<String,Object>> list);

    void updateSheetData8(List<Map<String,Object>> list);

    String exitTableByName(Map<String,Object> map);

    void createNewTable(@Param("tableName") String tableName);

    /**
     * truncate指定数据库表的数据
     * @param tableName
     * @return
     */
    void deleteCodeTableDate(@Param("tableName") String tableName);

    void addSheetData9(Map<String,Object> map);

}
